package raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import java.util.Scanner;

/**
 * 用户注册
 * 程序启动后要求用户输入用户名，密码，昵称和年龄，除了年龄为int值之外，其余都是字符串
 * 将用户信息写入文件user.dat中
 *
 * 格式设计
 * 每条记录占用固定的100字节，密码，昵称各占32字节，年龄占4字节。
 */
public class RegDemo {
    public static void main(String[] args) throws IOException {

        Scanner scanner=new Scanner(System.in);
        System.out.println("用户请注册信息");
        System.out.println("输入用户名");
        String username=scanner.nextLine();
        System.out.println("请输入密码");
        String password=scanner.nextLine();
        System.out.println("请输入昵称");
        String nickname=scanner.nextLine();
        System.out.println("请输入年龄");
        int age=scanner.nextInt();

        RandomAccessFile raf =new RandomAccessFile("user.txt","rw");
        //先将指针移动到文件末尾以便追加记录
        raf.seek(raf.length());
    //写入用户名
        byte[] data=username.getBytes("UTF-8");
        //将数组扩容到32字节
        data= Arrays.copyOf(data,32);
        raf.write(data);
    //写入密码
        data=password.getBytes("UTF-8");
        //将数组扩容到32字节
        data= Arrays.copyOf(data,32);
        raf.write(data);
     //写入昵称
        data=nickname.getBytes("UTF-8");
        //将数组扩容到32字节
        data= Arrays.copyOf(data,32);
        raf.write(data);
     //写入年龄
     raf.writeInt(age);
        System.out.println("注册成功");
        raf.close();
    }
}
